package com.train.test;

import com.aliyun.facebody20191230.models.GenerateHumanAnimeStyleAdvanceRequest;
import com.aliyun.facebody20191230.models.GenerateHumanAnimeStyleResponse;
import com.aliyun.facebody20191230.models.GenerateHumanAnimeStyleResponseBody;
import com.aliyun.tea.TeaException;

import java.io.InputStream;

public class HumanStyle {

        private static String ALIBABA_CLOUD_ACCESS_KEY_ID="LTAI5tRr5yWCmVcKXBr92Qk3";
        private static String ALIBABA_CLOUD_ACCESS_KEY_SECRET="JG5GAgeP2DiSYn2HHAQ39YnRE3FUkt";
        private static String url="";
        /**
         * <b>description</b> :
         * <p>使用AK&amp;SK初始化账号Client</p>
         * @return Client
         *
         * @throws Exception
         */
        public static com.aliyun.facebody20191230.Client createClient() throws Exception {
            // 工程代码泄露可能会导致 AccessKey 泄露，并威胁账号下所有资源的安全性。以下代码示例仅供参考。
            // 建议使用更安全的 STS 方式，更多鉴权访问方式请参见：https://help.aliyun.com/document_detail/378657.html。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    // 必填，请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
                    .setAccessKeyId(ALIBABA_CLOUD_ACCESS_KEY_ID)
                    // 必填，请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
                    .setAccessKeySecret(ALIBABA_CLOUD_ACCESS_KEY_SECRET);
            // Endpoint 请参考 https://api.aliyun.com/product/facebody
            config.endpoint = "facebody.cn-shanghai.aliyuncs.com";
            return new com.aliyun.facebody20191230.Client(config);
        }

        public static String human(InputStream inputStream, String type) throws Exception {
            com.aliyun.facebody20191230.Client client = HumanStyle.createClient();

//        InputStream inputStream = new FileInputStream(new File(url));

            GenerateHumanAnimeStyleAdvanceRequest generateHumanAnimeStyleRequest = new GenerateHumanAnimeStyleAdvanceRequest().setImageURLObject(inputStream).setAlgoType(type);
            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                // 复制代码运行请自行打印 API 的返回值
                GenerateHumanAnimeStyleResponse generateHumanAnimeStyleResponse = client.generateHumanAnimeStyleAdvance(generateHumanAnimeStyleRequest, runtime);
                Integer statusCode = generateHumanAnimeStyleResponse.statusCode;
                if(statusCode==200){
                    GenerateHumanAnimeStyleResponseBody body = generateHumanAnimeStyleResponse.getBody();
                    GenerateHumanAnimeStyleResponseBody.GenerateHumanAnimeStyleResponseBodyData data = body.getData();
                    return data.imageURL;
                }
            } catch (TeaException error) {
                // 此处仅做打印展示，请谨慎对待异常处理，在工程项目中切勿直接忽略异常。
                // 错误 message
                System.out.println(error.getMessage());
                // 诊断地址
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // 此处仅做打印展示，请谨慎对待异常处理，在工程项目中切勿直接忽略异常。
                // 错误 message
                System.out.println(error.getMessage());
                // 诊断地址
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            }
            return "";
        }


    }

